package tadp.tp.domain;

import java.util.ArrayList;
import java.util.List;
import cantidadReuniones.*;
import accionesPosteriores.AccionDeUsuario;

public final class HomePersonas {
	private List<Persona> personas = new ArrayList<Persona>();
	
	private static final HomePersonas INSTANCE = new HomePersonas();
	
	public static HomePersonas getInstance() {
        return INSTANCE;
	}

	public List<Persona> todasLaspersonas() {
		return personas;
	}

	public HomePersonas agregarPersona(Persona persona1) {
		this.personas.add(persona1);
		return this;
	}

	public Persona crearPersona(String nombre, Edificio edificio, Proyecto proyecto,	String sector, String unRol,
			String unHorarioIng, String unHorarioSal, Double unValor, Double uncostoTransporte, AccionDeUsuario accionDeUsuario){
		Persona persona = new Persona(nombre, edificio, proyecto, sector, unRol, unHorarioIng, unHorarioSal, unValor, uncostoTransporte, accionDeUsuario);
		
		this.agregarPersona(persona);
		
		return persona;
	}
	
	public void actualizarPersonas(){
		Fecha fechaActual = new Fecha(10,10);//seria en realidad la fecha en la noche que se corre el proceso.
		
		for(Persona unaPersona: this.personas)
		{
			if(unaPersona.horasDeReunionesDentroDelRango(fechaActual, 5) > 20)
			{
				unaPersona.setEstadoDeReuniones(CargaExcesiva.getInstance());
			}
			else
			{
				if(unaPersona.horasDeReunionesDentroDelRango(fechaActual, 120) > 100)
				{
					unaPersona.setEstadoDeReuniones(CargaNormal.getInstance());
				}
				else
				{
					unaPersona.setEstadoDeReuniones(CargaPoca.getInstance());
				}
			}	
		}
	}
	
	
}